抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

上一篇笔记说明了如何使用通过事物代码SMARTFORMS创建的Text Module对象如何在Adobe Form中进行展示。本篇笔记记录如何在Adobe Form中使用和展示Include Text对象。该对象展示的其实是SAP通过事物代码 SO10 创建和维护的Standard Texts(标准文本)。

Adobe Form显示Include Text

一、介绍

上一篇笔记说明了如何使用通过事物代码SMARTFORMS创建的Text Module对象如何在Adobe Form中进行展示。本篇笔记记录如何在Adobe Form中使用和展示Include Text对象。

该对象展示的其实是SAP通过事物代码 SO10 创建和维护的Standard Texts(标准文本)。

二、功能实现

1.Standard Text/Include Text

(1)创建标准文本

因为在后面的Form中需要使用到标准文本,所以提前创建好。

使用事务代码 SO10 创建 Standard Text 。输入文本对象的名称然后点击 Create 按钮。

1.Standard Text_新建界面

(2)维护文本内容_英文

在Text对象中填入英文的内容。完成之后点击上方的保存按钮保存文本对象。

2.Standard Text_维护英文内容

(3)维护文本内容_中文

我们回到SO10的界面,然后更换语言为ZH,点击Create按钮。再为该文本对象维护下中文的文本内容。

3.Standard Text_维护中文内容

参照下面的内容维护完成之后点击保存按钮,保存文本对象。

4.Standard Text_维护中文内容

2.Interface

(1)创建Interface

使用事物代码 SFP 打开创建界面,在输入框中填入Interface的名称。

5.Interface_创建Interface

(2)填写描述

6.Interface_填写描述

(3)创建输入参数

双击左侧Form Interface下的Import页签。在右侧的界面点击创建/新增按钮,添加输入参数。操作完成之后点击保存按钮并激活对象。

1
IV_LANGU	TYPE SY-LANGU.
7.Interface_创建输入参数

3.Adobe Form

(1)创建Adobe Form

使用事物代码 SFP 回到Adobe Form的创建界面。

8.Adobe Form_创建Form

(2)填写描述与绑定Interface

9.Adobe Form_填写描述并绑定Interface

(3)导入Interface的参数

从左侧的import页签下将IV_LANGU。参数拖动到右侧Adobe Form下的Context下。

10.Adobe Form_导入Interface的参数

(4)新建Text对象

按照下图所示的方式,新建一个文本对象,然后修改文本类型为Include Text。

11.Adobe Form_创建Text对象

修改文本类型。

12.Adobe Form_修改文本类型

(5)设置Text对象属性

将文本对象的属性设置为Include后,将上面通过SO10创建的标准文本名称填入其中。然后再勾选上“No error if text does not exist”。

13.Adobe Form_修改文本属性

(6)展示文本对象

打开Layout页签,在左侧选中Data View页签。将创建的文本对象拖动到Form界面中。

14.Adobe Form_展示文本对象

操作完成上面的内容之后,保存并激活文本对象。

三、Form测试

1.程序测试

(1)源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
*======================================================================*
* Selection Screen
*======================================================================*
PARAMETERS :
P_LANGU TYPE SPRAS. "Language

*======================================================================*
* Data Objects
*======================================================================*

DATA: GV_FM_NAME TYPE RS38L_FNAM, " FM Name
GS_FP_DOCPARAMS TYPE SFPDOCPARAMS,
GS_FP_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.

*======================================================================*
* Constants
*======================================================================*
CONSTANTS : GV_FORM_NAME TYPE FPNAME VALUE 'YADOBE_FORM_DEMO8'.

*======================================================================*
* START of Calling the Form
*======================================================================*
*&---------------------------------------------------------------------*
**&&~~ Form Processing: Call Form - Open
*
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
IE_OUTPUTPARAMS = GS_FP_OUTPUTPARAMS
EXCEPTIONS
CANCEL = 1
USAGE_ERROR = 2
SYSTEM_ERROR = 3
INTERNAL_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
" Suitable Error Handling
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Get the Function module name based on Form Name
*
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
I_NAME = GV_FORM_NAME
IMPORTING
E_FUNCNAME = GV_FM_NAME.
IF SY-SUBRC <> 0.
" Suitable Error Handling
ENDIF.

*&---------------------------------------------------------------------*
**&&~~ Take the FM name by executing the form - by using Pattern-
**&&~~ call that FM and replace the FM Name by gv_fm_name
**&&~~ Call the Generated FM
CALL FUNCTION GV_FM_NAME "'/1BCDWB/SM00000204'
EXPORTING
/1BCDWB/DOCPARAMS = GS_FP_DOCPARAMS
IV_LANGU = P_LANGU
* IMPORTING
* /1BCDWB/FORMOUTPUT =
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&---- Close the spool job
CALL FUNCTION 'FP_JOB_CLOSE'
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* <error handling>
ENDIF.

(2)执行结果

① 选择屏幕_EN
15.Form测试_程序_选择屏幕
② 执行结果_EN
16.Form测试_程序_执行结果
③ 选择屏幕_ZH
17.Form测试_程序_选择屏幕
④ 执行结果_ZH
18.Form测试_程序_执行结果

2.直接执行

在激活的Adobe From 界面直接点击运行按钮,输入语言字段查看执行的效果。

19.Form测试_直接执行

填入语言字段,然后执行Function。

20.Form测试_直接执行_输入参数

执行结果如下所示。

21.Form测试_直接执行_执行结果

四、参考资料

SAP Adobe Interactive Form Tutorial. Part VIII. Displaying Include Texts in Adobe forms

评论